#include <bits/stdc++.h>
using namespace std;
#define int long long
bool isPrime(int num) {
	if (num < 2) return false;
	if (num == 2) return true;
	if (num % 2 == 0) return false;
	
	for (int i = 3; i <= std::sqrt(num); i += 2) {
		if (num % i == 0) return false;
	}
	
	return true;
}
int smallestFactor(int num) {
	// 处理小于2的数：没有大于1的因子
	if (num < 2) {
		return -1; // 用-1表示无有效因子
	}
	// 2是最小的质数，先检查是否能被2整除
	if (num % 2 == 0) {
		return 2;
	}
	// 检查奇数因子，从3到sqrt(num)
	// 若存在因子，则最小的一定是质数
	for (int i = 3; i <= std::sqrt(num); i += 2) {
		if (num % i == 0) {
			return i;
		}
	}
	// 若没有找到比自身小的因子，则自身是质数，最小因子为自身
	return num;
}
void solve()
{
	int n;
	cin>>n;
	vector<int> v(n+1);
	for(int i=1;i<=n;i++)
	{
		v[i]=i;
	}
	for(int i=1;i<=n;i++)
	{
		//if(isPrime(i))continue;
		int s=smallestFactor(i);
		swap(v[s],v[i]);
	}
	for(int i=1;i<=n;i++)
	{
		cout<<v[i]<<" ";
	}
	cout<<endl;
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int T=1;
	cin>>T;
	while(T--)
	{
		solve();
	}
	return 0;
}
